#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <malloc.h>
#include<stdlib.h>
//int* smallerNumbersThanCurrent(int* nums, int numsSize, int* returnSize) {
//    int i = 0;
//    returnSize = (int*)malloc(numsSize * sizeof(int));
//    int* p = returnSize;
//    for (i = 0; i < numsSize; i++)
//    {
//        int j = 0;
//        int count = 0;
//        
//        for (j = 0; j < numsSize; j++)
//        {
//            if (j != i)
//            {
//                if (nums[i] > nums[j])
//                    count++;
//            }
//        }
//        returnSize[i] = count;
//    }
//    return p;
//}
//int main()
//{
//    int num[] = { 5,4,3,1,1 };
//    int* returnSize = NULL;
//    int len = sizeof(num)/sizeof(int);
//    returnSize = smallerNumbersThanCurrent(num,len , returnSize);
//    for (int i = 0; i < len; i++)
//    {
//        printf("%d ", returnSize[i]);
//    }
//    free(returnSize);
//    return 0;
//
//}
//int company(const void* aim1, const void* aim2)
//{
//    return (*(int**)aim1)[0] - (*(int**)aim2)[0];
//}
//int* smallerNumbersThanCurrent(int* nums, int numsSize, int* returnSize) {
//    // int i = 0;
//    // int* tem = (int*)malloc(numsSize * sizeof(int));
//    // *returnSize=numsSize;
//    // for (i = 0; i < numsSize; i++)
//    // {
//    //     int j = 0;
//    //     int count = 0;
//
//    //     for (j = 0; j < numsSize; j++)
//    //     {
//    //         if (j != i)
//    //         {
//    //             if (nums[i] > nums[j])
//    //                 count++;
//    //         }
//    //     }
//    //     tem[i] = count;
//    // }
//    // return tem;
//    //int ret=(int*)malloc(numsSize*sizeof(int));
//    int* tem[numSize];//(int)malloc(numsSize * sizeof(int));
//    int i = 0;
//    for (i = 0; i < numsSize; i++)
//    {
//        tem[i] =(int *) malloc(sizeof(int) * 2);
//        tem[i][0] = nums[i];
//        tem[i][1] = i;
//    }
//    int* ret = (int*)calloc(numsSize, sizeof(int));
//    qsort(tem, numsSize, sizeof(int*), company);
//    for (i = numsSize; i >= 0; i--)
//    {
//        int j = 0;
//        for (j = i - 1; j >= 0; j--)
//        {
//            if (tem[i][0] > tem[j][0])
//            {
//                ret[tem[i][0]] = j + 1;
//                break;
//            }
//        }
//    }
//    return ret;
//
//
//
//}
#include <ctype.h>
int find(char* s, int i)
{
    while (*s&&i)
    {
        int n = 0;
        for (n = 1; n < i&&*(s+n)!='\0'; n++)
        {
            if (*s == *(s + n))
                return 0;
        }
        s++; i--;
    }
    
    return 1;
}
int lengthOfLongestSubstring(char* s) {
    int max = 0;
    while (*s != '\0')
    {
        int count = 1; int i = 1;
        while (*s != (*(s + i)) && *(s + i) != '\0')
        {
            i++;
            count++;
        }
        if (*(s + i) == '\0')
            i--;
        while (*(s + i) == *(s + i - 1)&&i>1)
        {
            i--;
            count--;
        }
        if (count > max&&find(s+1,i)&& isalpha(*s))
            max = count;
        s++;
    }
    return max;
}
int main()
{
    char s[] = " ";
    int max = lengthOfLongestSubstring(s);
    printf("%d", max);
}
//int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
//    int i = 0;
//
//    //*returnSize=numsSize;
//    for (i = 0; i < numsSize; i++)
//    {
//        int j = 0;
//        for (j = i + 1; j < numsSize; j++)
//        {
//            if ((nums[i] + nums[j] == target))
//            {
//                int* ret = (int*)malloc(2 * sizeof(int));
//                ret[0] = i;
//                ret[1] = j;
//                *returnSize = 2;
//                return ret;
//                //goto again;
//            }
//        }
//    }
//    *returnSize = 0;
//    return NULL;
//}